import GameConst from './GameConst'
import Utils from './utils';
export default class Preloader {
    constructor() {
        this.sprites = [];
        this.mainLoadingStarted = false;
        this.shownButton = false;
        this.loadedMain = false;
        this.hasBrandLogo = false;
        this.hasMoreGames = false;
        this.progressBar = null;
        this.startLoad();
    }


    onLoadFail(e) {
        console.log('load error:' + e);
    }
    onClick(e) {
        console.log('click');
    }
    destroy() {
        Utils.removeClip(this.sprite);
    }

    startLoad() {
        var n = new Laya.Sprite;
        n.name = "preload";
        Laya.stage.addChild(n);
        this.sprite = n;
        var r = [{
            url: "preloader/scene1.png",
            type: Laya.Loader.IMAGE
        }, {
            url: "preloader/scene2.png",
            type: Laya.Loader.IMAGE
        }, {
            url: "preloader/barbg.png",
            type: Laya.Loader.IMAGE
        }, {
            url: "preloader/barbg$bar.png",
            type: Laya.Loader.IMAGE
        }];
        this.loadRes = r;

        // this.preLoader = new Laya.Loader();
        // this.preLoader.addEventListener(Laya.Event.COMPLETE, function () {
        //     return t.onPreLoadComplete();
        // });
        var ldm = Laya.loader.load(r, Laya.Handler.create(this, this.onPreLoadComplete));
        ldm.setGroup('preloader');
        ldm.once(Laya.Event.ERROR, this, this.onLoadFail);
    };

    loadLvlData(){
        var lvlconfg = localStorage.getItem('lvlconfig');
        if(lvlconfg){
            var lvldata  = JSON.parse(lvlconfg);
            if(lvldata.version==GameConst.LvlCfg_Version){
                GameConst.levelData = lvldata.data;
                return;
            }
        }
        var http = new Laya.HttpRequest();
        http.once(Laya.Event.COMPLETE,this,this.onLvlLoad);
        http.once(Laya.Event.ERROR,this,this.onLoadError);
        // http.send('https://wxres.18yb.com/jelly/lvldata.json',{},'get','json');
        http.send('lvldata.json',{},'get','json');
    }

    onLoadError(data){
        if(this.error){
            return;
        }
        this.error = 1;
        console.log(data);
        this.loadLvlData();
    }

    onLvlLoad(data){
        GameConst.levelData = data;
        var lvldata = {
            version:GameConst.LvlCfg_Version,
            data:data
        };
        localStorage.setItem("lvlconfig",JSON.stringify(lvldata));
    }
}




Preloader.prototype.onPreLoadComplete = function (all) {
    if (!all) {
        return;
    }

    if (this.mainLoadingStarted)
        return;
    this.mainLoadingStarted = true;
    var sprite = this.sprite;
    sprite.graphics.drawTexture(Laya.loader.getRes('preloader/scene1.png'), 0, 0, Laya.stage.width, 812);
    sprite.graphics.drawTexture(Laya.loader.getRes('preloader/scene2.png'), 0, 812, Laya.stage.width, 812);

    var bar = new Laya.ProgressBar("preloader/barbg.png");
    this.progressBar = bar;
    bar.width = 479;
    bar.x = GameConst.SCREEN_W / 2 - bar.width / 2;
    bar.y = GameConst.FULL_SCREEN_H / 2 + 200;
    // bar.sizeGrid = "5,5,5,5";
    sprite.addChild(bar);

    this.onResize();

    var game = "game/";
    // var s = game + "tutorial/";
    var o = [{
            url: "res/atlas/textures/jelly.atlas",
            id: "abcJson",
            type: Laya.Loader.ATLAS
        },
        {
            url: "res/atlas/game.atlas",
            id: "abcJson",
            type: Laya.Loader.ATLAS
        },
        {
            url: "res/atlas/map.atlas",
            id: "abcJson",
            type: Laya.Loader.ATLAS
        },
        {
            url: "res/atlas/menu.atlas",
            id: "abcJson",
            type: Laya.Loader.ATLAS
        },

        // {
        //     url: "res/atlas/font_red.atlas",
        //     type: Laya.Loader.ATLAS
        // }, {
        //     url: "res/atlas/font_blue.atlas",
        //     type: Laya.Loader.ATLAS
        // },
        {
            url: "back.png",
            id: "back"
        }, {
            url: "prefabs/mapitem.json",
            type: Laya.Loader.JSON
        }, {
            url: "prefabs/win_panel.json",
            type: Laya.Loader.JSON
        }, {
            url: "prefabs/lost_panel.json",
            type: Laya.Loader.JSON
        }, {
            url: "prefabs/pause_panel.json",
            type: Laya.Loader.JSON
        }, {
            url: "prefabs/target_panel.json",
            type: Laya.Loader.JSON
        }, {
            url: "prefabs/topui.json",
            type: Laya.Loader.JSON

            // }, {
            //     url: "gloss anim.txt",
            //     id: "gloss anim",
            //     type: Laya.Loader.JSON
        }, {
            url: "menu transfer.png",
            id: "pointer",
            type: Laya.Loader.IMAGE
        }, {
            url: "res/atlas/toprank.atlas",
            type: Laya.Loader.ATLAS

        }
        // , {
        //     url: s + "t1.png",
        //     id: "tutorial1"
        // }, {
        //     url: s + "t2.png",
        //     id: "tutorial2"
        // }, {
        //     url: s + "t3.png",
        //     id: "tutorial3"
        // }, {
        //     url: s + "t4.png",
        //     id: "tutorial4"
        // }, {
        //     url: s + "t5.png",
        //     id: "tutorial5"
        // }, {
        //     url: s + "t6.png",
        //     id: "tutorial6"
        // }, {
        //     url: s + "t7.png",
        //     id: "tutorial7"
        // }, 
        // ,{
        //     url: "map/mapbg0.png",
        //     id: "map1"
        // }, {
        //     url: "map/mapbg1.png",
        //     id: "map2"
        // }
        // , {
        //     url: "sound/music/btcl_main_music.ogg",
        //     id: "main_music",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/hero_show.ogg",
        //     id: "hero_show",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/hero_hide.ogg",
        //     id: "hero_hide",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/win.ogg",
        //     id: "win",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/fail.ogg",
        //     id: "fail",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/play_button.ogg",
        //     id: "play_button",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/button.ogg",
        //     id: "button",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/pause.ogg",
        //     id: "pause",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/transition.ogg",
        //     id: "transition",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/remove1.ogg",
        //     id: "remove1",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/remove2.ogg",
        //     id: "remove2",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/remove3.ogg",
        //     id: "remove3",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/remove4.ogg",
        //     id: "remove4",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/bonus_show.ogg",
        //     id: "bonus_show",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/bonus_set.ogg",
        //     id: "bonus_set",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/bonus_bomb.ogg",
        //     id: "bonus_bomb",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/bonus_line.ogg",
        //     id: "bonus_line",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/bonus_color.ogg",
        //     id: "bonus_color",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/star1.ogg",
        //     id: "star1",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/pointer.ogg",
        //     id: "pointer_sound",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/star2.ogg",
        //     id: "star2",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/star3.ogg",
        //     id: "star3",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/cookie_crash.ogg",
        //     id: "cookie_crash",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/choco_crash.ogg",
        //     id: "choco_crash",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/color_crash.ogg",
        //     id: "color_crash",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/cake_down.ogg",
        //     id: "cake_down",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/stop_move.ogg",
        //     id: "stop_move",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/water_set.ogg",
        //     id: "water_set",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/water_remove.ogg",
        //     id: "water_remove",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/teleport1.ogg",
        //     id: "teleport1",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/teleport2.ogg",
        //     id: "teleport2",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/teleport3.ogg",
        //     id: "teleport3",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/bush_remove.ogg",
        //     id: "bush_remove",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/root_remove.ogg",
        //     id: "root_remove",
        //     type: Laya.Loader.SOUND
        // }, {
        //     url: "sound/chocolate_bomb.ogg",
        //     id: "chocolate_bomb",
        //     type: Laya.Loader.SOUND
        // }
    ];

    if (Utils.isLocal()) {
        
        var lvl = {
            url: "../lvldata.json",
            type: Laya.Loader.JSON
        };
        o.push(lvl);
    }else{
        this.loadLvlData();
    }


    // if (GameConst.episode == 3)
    //     o.push({
    //         url: i + "logo down.jpg",
    //         id: "logo down"
    //     }, {
    //         url: s + "t8.png",
    //         id: "tutorial8"
    //     }, {
    //         url: s + "t9.png",
    //         id: "tutorial9"
    //     });
    // else if (GameConst.episode == 4)
    //     o.push({
    //         url: s + "t8.png",
    //         id: "tutorial8"
    //     }, {
    //         src: s + "t9.png",
    //         url: "tutorial9"
    //     });
    Laya.loader.load(o, Laya.Handler.create(this, this.onLoadComplete), Laya.Handler.create(this, this.onLoadProgress));
    //,Laya.Handler.create(this,this.onLoadProgress)
};
Preloader.prototype.onLoadComplete = function (all) {
    if (all) {
        if(!GameConst.levelData){
            var data = Laya.loader.getRes('../lvldata.json');
            if(data){
                GameConst.levelData = data;
            }
        }
        this.onResize();
        this.showButton();
        Laya.MiniAdpter && Laya.MiniAdpter.sendAtlasToOpenDataContext("res/atlas/toprank.atlas");
    } else {
        console.log(all);
    }

};
Preloader.prototype.showButton = function () {
    // if (!this.shownButton) {
    //     this.shownButton = true;
    //     this.playButton.scaleX = this.playButton.scaleY = .5;
    //     this.playButton.visible = true;
    //     this.circle.visible = false;
    //     Laya.Tween.to(this.playButton,{
    //         scaleX: 1.2,
    //         scaleY: 1.2,
    //         alpha: 1
    //     },150,Laya.Ease.circOut);
    //     Laya.Tween.to(this.playButton,{
    //         scaleX: 1,
    //         scaleY: 1
    //     },250,Laya.Ease.circIn,null,160);
    //     this.playButton.once(Laya.Event.CLICK,this,this.onDown);

    // }

    GameConst.game.loadApi();
    Laya.timer.once(100, this, this.onDown);
};
Preloader.prototype.onDown = function (e) {
    this.progressBar.destroy();
    Laya.loader.clearResByGroup("preloader");
    Utils.removeClip(this.sprite);
};
Preloader.prototype.isActive = function () {
    return this.sprite.parent != null;
};
Preloader.prototype.disable = function () {
    Utils.removeClip(this.sprite);
    for (var e = 0; e < this.sprites.length; ++e)
        Utils.removeClip(this.sprites[e]);
};
Preloader.prototype.onLoadProgress = function (e) {
    console.log('process:' + e);
    this.progressBar.value += e;
};
Preloader.prototype.update = function (e) {
    // if (this.sprite && this.sprite.parent && this.sprites.length > 0) {
    //     this.sprites[1].rotation -= 400 * e;
    // }
};
Preloader.prototype.onResize = function () {
    if (!this.sprite || !this.sprite.parent || this.sprites.length <= 0)
        return;
    // this.sprites[1].x = GameConst.SCREEN_W/2 + 13;
    // this.sprites[1].y = GameConst.FULL_SCREEN_H/2;
};